/**
 * 自动扫描 src/components/ 目录下的所有组件并注册为全局组件，无需手动注册
 * 需要组件中包含name属性，才会注册
 */

import Vue from 'vue'

const requireComponent = require.context(
  // 其组件目录的相对路径
  '../components',
  // 是否查询其子目录
  false,
  // 匹配基础组件文件名的正则表达式
  /[A-Z]\w+\.(vue|js)$/
)

requireComponent.keys().forEach(fileName => {
  // 获取组件配置
  const componentConfig = requireComponent(fileName)

  // 获取组件名
  const componentName = componentConfig.default.name;

  if(componentName == null){
    return;
  }

  // 全局注册组件
  Vue.component(
    componentName,
    componentConfig.default
  )
})
